package com.vvv.shortlink.admin.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.vvv.shortlink.admin.dao.entity.GroupDO;
import com.vvv.shortlink.admin.dto.req.ShortLinkGroupSaveReqDTO;
import com.vvv.shortlink.admin.dto.req.ShortLinkGroupSortReqDTO;
import com.vvv.shortlink.admin.dto.req.ShortLinkGroupUpdateReqDTO;
import com.vvv.shortlink.admin.dto.resp.LinkGroupRespDTO;

import java.util.List;

/**
* @author Dell
* @description 针对表【t_group】的数据库操作Service
* @createDate 2024-02-01 10:38:08
*/
public interface GroupService extends IService<GroupDO> {

    /**
     * 新增短链接分组
     * @param requestParam 分组名称
     */
    void saveGroup(ShortLinkGroupSaveReqDTO requestParam);

    /**
     * 新增短链接分组
     * @param userId 用户id
     * @param requestParam 分组名称
     */
    void saveGroup(Long userId, ShortLinkGroupSaveReqDTO requestParam);


    /**
     * 查询分组集合
     *
     * @return 分组list集合
     */
    List<LinkGroupRespDTO> listGroup();

    /**
     * 修改短链接分组
     *
     * @param requestParam gid , name
     */
    void updateGroup(ShortLinkGroupUpdateReqDTO requestParam);

    /**
     * 删除短链接分组
     *
     * @param gid 分组唯一标识
     */
    void deleteGroup(String gid);

    /**
     * 排序短链接分组
     *
     * @param requestParam
     */
    void sortGroup(List<ShortLinkGroupSortReqDTO> requestParam);
}
